using MediatR;
using System;
using Work.ErrorCode;

namespace Work.API.Applications.Write.Commands
{
    /// <summary>
    /// 更新检药单命令（用于查看检药单模块）
    /// 用于更新检查状态、检查结果等信息
    /// </summary>
    public class UpdateInspectionCommand : IRequest<ApiResult<int>>
    {
        /// <summary>
        /// 检药单ID（必填）
        /// </summary>
        public int InspectionId { get; set; }

        /// <summary>
        /// 检查状态（待检查/已检查/已发药）
        /// </summary>
        public string? InspectionStatus { get; set; }

        /// <summary>
        /// 检查日期
        /// </summary>
        public DateTime? InspectionDate { get; set; }

        /// <summary>
        /// 检查人（执行检查操作的人员）
        /// </summary>
        public string? Inspector { get; set; }

        /// <summary>
        /// 检查结果（正常/过期/损坏等）
        /// </summary>
        public string? InspectionResult { get; set; }

        /// <summary>
        /// 处理方式（继续使用/报废/退回等）
        /// </summary>
        public string? HandlingMethod { get; set; }

        /// <summary>
        /// 是否已发药（true=已发药）
        /// </summary>
        public bool? IsDispensed { get; set; }

        /// <summary>
        /// 发药日期（可选）
        /// </summary>
        public DateTime? DispensedDate { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remarks { get; set; }
    }
}

